package casa.domain;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import casa.repository.ClienteRepository;

public class Estacionamento {

	static final Integer MAXIMODEVAGAS = 30;

	private Integer quantidadeDeVagas = MAXIMODEVAGAS;
	private List<Carro> carrosEstacionados = new ArrayList<>();
	private List<Vaga> vagas = new ArrayList<>();
	//private Vaga[] vagas;

	public Estacionamento() {
		for (Integer numeroVaga = 1; numeroVaga <= MAXIMODEVAGAS; numeroVaga++){
			Vaga vaga = new Vaga(numeroVaga);
			//vagas[numeroVaga].setCarro(new Carro(null, null));
			vagas.add(vaga);
		}
	}

	public Integer cadastraCarroNaVaga(Carro carro){
//		for (Integer numeroVaga = 1; numeroVaga <= vagas.length; numeroVaga++){
//			if (vagas[numeroVaga].getCarro().getPlaca() == null){
//				vagas[numeroVaga].setCarro(carro);
//				break;
//			}
		Integer numeroVaga = 0;
		for (Vaga vaga : vagas){
			if (vaga.getCarro() == null) vaga.setCarro(carro);
			numeroVaga = vaga.getNumero();
			break;
		}
		return numeroVaga;
	}
	

	
	// ClienteRepository clienteRepository = new ClienteRepository();
	CarroRepository carroRepository = new CarroRepository();

	public Integer getQuantidadeDeVagas() {
		return quantidadeDeVagas;
	}

	public void adicionaCarroEstacionado(Carro carro) {
		carrosEstacionados.add(carro);
		quantidadeDeVagas--;
	}

	public void transfereCarroEstacionadoParaHistorico(Carro carro) {
		carrosEstacionados.remove(carro);
		quantidadeDeVagas++;
		//carroRepository.adiconaCarrosHistorico(carro);
	}

	public List<Carro> getCarrosEstacionados() {
		return carrosEstacionados;
	}

}
